import scala.collection.mutable.ArrayBuffer

object array {
  def main(args: Array[String]): Unit = {
    /*容器
  * Scala当中，容器分为可变容器和不可变容器
  * 可变容器：容器创建之后，元素、长度进行添加、修改、删除
  * 不可变容器：容器创建之后，元素、长度不可进行添加、修改、删除
  * * 对一个不可变容器的修改表达可以通过创建一个新的容器进行操作
  * 可变容器：mutable
  * 不可变容器：immutable
  */
    //1、定义容器长度
    var arr1 = new Array[Int](10)
    //2、定义容器内容
    var arr2 = Array(1,2,3,4,5)

    //容器赋值
    println(arr1.mkString(","))
    arr1(1) = 1
    println(arr1.mkString(","))

    for (i <- arr2){
      println(i)
    }

    //对于基础容器来说，不允许修改长度
    //ArrayBuffer容器可以进行容器元素的修改和长度的修改
    var arrBuffer1 = ArrayBuffer(1,2,3,4,5)
    arrBuffer1(0) = 0
    arrBuffer1 += 6
    arrBuffer1 -= 5
    println(arrBuffer1.mkString(","))

    //确实想在基础容器arr2后面加一个元素
    var arr3 = arr2 :+6
    println(arr3.mkString(","))

    /* 元组：类进行模拟，元素的个数：22个
     * 元组表达当中，第一个元素就是编号1
     * 元组每个元素之间类型可以不一致，所以可以实现 val tup1 = (1,2,"Hello World")
     * 如果元素较多，需要使用元组操作，可以使用元组套元组的方式实现无限叠加
    */
    val tup1 = ("Hello World",2,3,4,5)
    val tup2 = (1,2,3,4,5)
    val tup3 = (1,2,3,4,5)
    val tup4 = (1,2,3,4,5)
    val tup5 = (1,2,3,4,5)
    val tup6 = (1,2,3,4,5)
    val tups = (tup1,tup2,tup3,tup4,tup5,tup6)
    val tups_1 = (tups,tups,tups,tups,tups)
    println(tups_1._1._1._1)
    println(tup1._1)

  }
}